'''
自定义with语句：

要求1：最终代码效果可以使用with TcpSocket("s", "192.168.126.178", 8080) as socket:语句获取套接字socket；

要求2：TcpSocket类中：第一个参数如果是"s"，创建服务端套接字，"192.168.126.178", 8080分别为要绑定的IP和端口号；第一个参数如果是"c"，则创建客户端套接字，"192.168.126.178", 8080分别为要连接的服务端的IP和端口号；

要求3：如果创建服务端套接字，上下文中能自动绑定IP和端口号，且处于监听状态；

要求4：如果创建客户端套接字，上下文中能自动连接到目标服务端。
(10分)反馈该题

'''
import socket

class TcpSocket(object):
    def __init__(self,type,ip,port):
        self.socket = socket.socket()
        if type == "s":
            self.socket.bind((ip,port))
            self.socket.listen()
        elif type == "c":
            self.socket.connect((id,port))

    def __enter__(self):
        return self.socket

    def __exit__(self):
        self.socket.close()


if __name__ == '__main__':
    with TcpSocket ("s", "192.168.126.178", 8080) as socket:
        pass
